import 'package:equatable/equatable.dart';
import 'package:backend.core/core/domain/entities/api/google_play/api_google_play_purchased_subscription_cancellation_survey_result.dart';

abstract class ApiGooglePlayPurchasedSubscriptionCancellationInfo {}

class ApiGooglePlayPurchasedSubscriptionUserCancellationInfo extends Equatable
    implements ApiGooglePlayPurchasedSubscriptionCancellationInfo {
  const ApiGooglePlayPurchasedSubscriptionUserCancellationInfo({
    required this.time,
    required this.surveyResult,
  });

  final DateTime time;
  final ApiGooglePlayPurchasedSubscriptionCancellationSurveyResult surveyResult;

  @override
  List<Object?> get props {
    return [
      time,
      surveyResult,
    ];
  }
}

class ApiGooglePlayPurchasedSubscriptionSystemCancellationInfo extends Equatable
    implements ApiGooglePlayPurchasedSubscriptionCancellationInfo {
  const ApiGooglePlayPurchasedSubscriptionSystemCancellationInfo();

  @override
  List<Object?> get props => [];
}

class ApiGooglePlayPurchasedSubscriptionDeveloperCancellationInfo extends Equatable
    implements ApiGooglePlayPurchasedSubscriptionCancellationInfo {
  const ApiGooglePlayPurchasedSubscriptionDeveloperCancellationInfo();

  @override
  List<Object?> get props => [];
}

class ApiGooglePlayPurchasedSubscriptionNewSubscriptionCancellationInfo extends Equatable
    implements ApiGooglePlayPurchasedSubscriptionCancellationInfo {
  const ApiGooglePlayPurchasedSubscriptionNewSubscriptionCancellationInfo();

  @override
  List<Object?> get props => [];
}
